How to USB update K1 
(application side, using IbootCore_1_3)

(Cannes + "after Cannes" version update)

(Last edited: 2003-03-18 by AALacl)

To USB update your K1, you need the following requisites:

1) An MMI pcb with the newest USB modifications: This means B1+ with additional USB-pullup switch (should be standard on boards delivered from 2003-02-07 and later), B1+ run 4 or 5 or a B2 board. The flashes should be preloaded with the IbootCore (USB swup core), this has to be done from factory or by JTAG. If your mmi pcb doesn't have a debug connector, true for all B2 boards, you have to have a needle fixture for this.

2) Make sure your Main pcb is version B1+ or later, and that the SW is upgraded to a version, that allows SW update via USB. Cannes SW or production SW from 2003-02-20 or later will do. (Can be found here: Aalafs3:\Project\K1\Tools\B1+\Production_SW\Modem_processor\030220_all\ep55k1). If your modem SW is working and it is newer than 030114, the ep55k1.xbz found in this directory should work OK.

3) A USB cable for connecting your K1 to your Windows 2000 PC. (DO NOT USE A USB SERIAL CABLE for Marlin; the correct type has NO converterbox on the middle.)

4) Install the IBOOT host on your Windows 2000 PC. Windows 98 is curently not supported. IBOOT host can be found in: Aalafs3:\Project\K1\Tools\Iboot_USB_SWup_package_3.zip (This package). 
To make IBOOT host work you must register IIP_ActiveX.ocx in the registry using "regsvr32 <drive>:\path\to\IIP_ActiveX.ocx" from a command line.
You also have to install a USB driver. Use the files: InnovaterUSB.sys and InnovaterUSB.Inf , also found in this package.

5) Make sure your application SW is smaller than 14,5 Mb, and contains a jump to the IbootCore (Startup.s must contain: ldr pc,=0x40000cc), so that you can SW update next time. It should be an -.img file.


New APPLICATION SW:
To perform the update of your K1 do as follows:

1) With the K1 power off: Connect your K1 to your PC by your USB cable.
    
2) Connect the power supply / battery. WARNING: As power loss during the SW update process is fatal for your mobile, make sure your battery has enough power for the whole process; it is recommended to charge it for at least 1 hour immediately before an application update, using the standard charger and the above mentioned modem SW. Your mobile should be able to run for about 10 min. with max power consumption !   

3) While holding the CENTER key depressed: Press or short cirquit the ON key. The application processor should now boot the IbootCore (USB SWup); the display light should switch on, but nothing is written on it.

4) If this is the FIRST time a K1 is connected to this PC, an USB sign is shown at the bottom line, and by double clickin' on it, you're allowed to install a driver. Use the driver mentioned under 4) above.

5) Start IBOOT host. It will show: "The device not connected". By clickin' "Connect" it should show: "Connection succesfull". By clickin' first on "Symbian", then on "Open file", you can browse for your -.img file.

6) By clickin' "Load file", there is NO RETURN: Your -.img file will be loaded into the application processor RAM, from where it will be programmed into the flash, which will first be erased. As the USB connection is lost during the swup procedure, the IBOOT host can not control the progress; but you can monitor the progress by watching the telephone (see 7). The swup procedure takes about 7 min. 
WARNING: It is important NOT to disconnect NETHER the power supply NOR the USB cable during the update process, as the interrupt table for the IbootCore can get lost, so that SWup via the system connector is impossible.

7) Monitoring the SWup progress on your K1:
    a) Display backlight switches on (IbootCore version is written): IbootCore has
       started (IBOOT Host should be able to connect).
    b) The display shows a frame with information about the USB. 
    c) Key backlight switches on: Your -.img file has been transferred to RAM, 
       and erasure of flash begins. USB connection is shut down, but the erase
       and programming process can now be monitored on progress bars on the display.        DON'T remove the cable - it'll cause an interrupt of the programming process.
    d) Display backlight switches off, but key backlight stays on: Programming 
       has ended, you can now disconnect the power from your phone. 
    e) Display - and Key backlight flashes in counterphase: The -.img file has
       been corrupted during transmission or doesn't contain a jump to the 
       start address for the current version of IbootCore. Erasure will not take 
       place. Switch off power and try again from the beginning; if this situation
       repeats itself, your S60 baseport might be too old for the current 
       iBootCore.     

Update IBOOTCORE:
Note: It is recommended to update the IbootCore when a new USB SW update package is released, or if you get a mobile directly from the factory, as the security and stability is gradually improved. 

To perform an update of the IbootCore on your K1, do as follows:

Follow step 1) to 4) like an application SW update. Continue as follows:

5) Start IBOOT host. It will show: "The device not connected". By clickin' "Connect" it should show: "Connection succesfull". By clickin' first on "Iboot", then marking the check box "Load Iboot Core" and clickin' "Browse", you can browse for your iBootCore.plf file, which could be found in this package.

6) By clickin' "Load Core", there is NO RETURN: Your iBootCore.plf file will be loaded into the application processor RAM, from where it will be programmed into the flash, which will first be erased. As the USB connection is lost during the swup procedure, the IBOOT host can not control the progress; but you can monitor the progress by watching the telephone (see 7 in application SW update). 
OBSERVE: The erase and programming bar sequence will occur twice by iBootCore update, as both the core itself, but also the interruptvector table has top be updated. 
WARNING: It is important NOT to disconnect NETHER the power supply NOR the USB cable during the update process, as the interrupt table for the IbootCore can get lost, so that SWup via the system connector is impossible.

Note: After update of the iBootCore, the application SW will have to be updated, because the update of the interrupt vector table erases part of the application SW.    

To uninstall IBOOT host you must unregister IIP_ActiveX.ocx from the registry using "regsvr32 /u <drive>:\path\to\IIP_ActiveX.ocx" from a command line.

